#include"headfile.h"


memNode * createNode(int num)
{
    memNode * newP = (memNode *)calloc(1, SIZE_MEM); //用calloc分配空间自动初始化为0
    if(NULL == newP)//创建成员节点失败
    {
        printf("创建成员节点失败:%m\n");
        return NULL;
    }
    printf("请输入要添加的新学生的信息:\n");
    printf("姓名 输入返回则返回到上一步:");
    scanf("%s%*c", newP->mem.name);
    if(0 == strcmp("返回",newP->mem.name))
        return NULL;
    if(stu_num == num)
    {
        char c;
        printf("id号 输入-1返回:");
id_re:  while(0 == scanf("%d", &(newP->mem.id)))
        {
            printf("您输入的id号不对,请重新进行输入:");
            while((c = getchar()) != '\n');
        }
        getchar();
        if(-1 == newP->mem.id) return NULL;
        if(true == _isExist(newP->mem.id))
        {
            printf("该用户已经存在,请重新输入id号:");
            newP->mem.id = 0;
            goto id_re;
        }

        printf("性别 输入返回则返回到上一步:");
        while(1 == scanf("%s%*c", newP->mem.sex))
        {
            if(0 == strcmp("返回",newP->mem.sex))
                return NULL;
            if(0 == strcmp("男",newP->mem.sex) || 0 == strcmp("女",newP->mem.sex))
                break;
            printf("您输入的性别有误,请重新进行输入:");
        }

        printf("年龄 输入-1返回:");
        while(0 == scanf("%d", &(newP->mem.age)))
        {
            printf("您输入的年龄不对,请重新进行输入:");
            while((c = getchar()) != '\n');
        }
        getchar();
        if(-1 == newP->mem.age)
            return NULL;
    }
    else if(user_num == num)
    {
        char password[N];//用于进行二次输入密码对错判断

passwd: system("stty -echo");//关闭回显功能，在终端进行输入的时候不显示密码

        printf("第一次密码:");
        scanf("%s%*c", newP->mem.password);
        if(0 == strcmp("取消", newP->mem.password))//如果输入的是“取消”则退出创建成员节点
            return NULL;
        
        printf("请再次输入密码:");
        if(0 == seconfEntry(newP->mem.password,1))//如果输入的是“取消”则退出创建成员节点
            return NULL;

        system("stty echo");//打开回显功能
    }
    return newP;
}
